﻿using ExcelUnity.Core;
using ExcelUnity.Exporter.Attributes;
using ExcelUnity.Exporter.Attributes.Styles;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;

namespace ExcelUnity.Test.Export.Dtos
{
    /// <summary>
    /// 指标统计汇总内容
    /// </summary>
    public class TargetStatisticsCollectContent
    {
        /// <summary>
        /// 一级分类
        /// </summary>
        [MergeRowAlone]
        [PrimaryKey]
        [RowHeight(30)]
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("一级分类")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string OneLevelClassify { get; set; }

        /// <summary>
        /// 二级分类
        /// </summary>
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("二级分类")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string TwoLevelClassify { get; set; }

        /// <summary>
        /// 总的指标数
        /// </summary>
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("总的指标数")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        public string SumTargetNum { get; set; }

        /// <summary>
        /// 目标达成数
        /// </summary>
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("目标达成数")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        public string TargetSuccessNum { get; set; }

        /// <summary>
        /// 已达成指标数
        /// </summary>
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("已达成指标数")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        public string ConcludeTargetNum { get; set; }

        /// <summary>
        /// 待达成指标数
        /// </summary>
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("待达成指标数")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        public string NotConcludeTargetNum { get; set; }

        /// <summary>
        /// 目标得分
        /// </summary>
        [MergeRow]
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("目标得分")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        public string TargetGrade { get; set; }

        /// <summary>
        /// 当前得分
        /// </summary>
        [MergeRow]
        [ColumnWidth(18 * 256, 20 * 256)]
        [ColumnName("当前得分")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        public string CurrGrade { get; set; }
    }

    /// <summary>
    /// 指标汇总内容合计
    /// </summary>
    public class TargetStatisticsCollectTotal
    {
        /// <summary>
        /// 总的指标数
        /// </summary>
        public string SumTargetNum { get; set; }

        /// <summary>
        /// 目标达成数
        /// </summary>
        public string TargetSuccessNum { get; set; }

        /// <summary>
        /// 已达成指标数
        /// </summary>
        public string ConcludeTargetNum { get; set; }

        /// <summary>
        /// 待达成指标数
        /// </summary>
        public string NotConcludeTargetNum { get; set; }

        /// <summary>
        /// 四甲目标得分
        /// </summary>
        [ColumnStyle(fillForegroundColor: HSSFColor.SeaGreen.Index, showAllBorder: true)]
        [HeaderStyle(isBold: true, showAllBorder: true)]
        [ColumnName("四甲目标得分")]
        public string FourATargetGrade { get; set; }

        /// <summary>
        /// 当前得分
        /// </summary>
        [ColumnStyle(fillForegroundColor: HSSFColor.SeaGreen.Index, showAllBorder: true)]
        [HeaderStyle(isBold: true, showAllBorder: true)]
        [ColumnName("当前得分")]
        public string CurrGrade { get; set; }
    }
}